package com.ruoyi.cderp.domain;

import java.math.BigDecimal;
import java.util.List;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 物流单对象 tbl_logistics_sheet
 * 
 * @author ruoyi
 * @date 2025-04-25
 */
public class TblLogisticsSheet extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** ID */
    @Excel(name = "ID")
    private String id;

    /** 业务单据号 */
    @Excel(name = "业务单据号")
    private String code;

    /** 物流单号 */
    @Excel(name = "物流单号")
    private String logisticsNo;

    /** 物流公司ID */
    @Excel(name = "物流公司ID")
    private String logisticsCompanyId;

    /** 寄件人姓名 */
    private String senderName;

    /** 寄件人联系电话 */
    private String senderTelephone;

    /** 寄件人省 */
    @Excel(name = "寄件人省")
    private String senderProvinceId;

    /** 寄件人市 */
    @Excel(name = "寄件人市")
    private String senderCityId;

    /** 寄件人区 */
    @Excel(name = "寄件人区")
    private String senderDistrictId;

    /** 寄件人地址 */
    @Excel(name = "寄件人地址")
    private String senderAddress;

    /** 收件人姓名 */
    @Excel(name = "收件人姓名")
    private String receiverName;

    /** 收件人联系电话 */
    @Excel(name = "收件人联系电话")
    private String receiverTelephone;

    /** 收件人省 */
    @Excel(name = "收件人省")
    private String receiverProvinceId;

    /** 收件人市 */
    @Excel(name = "收件人市")
    private String receiverCityId;

    /** 收件人区 */
    @Excel(name = "收件人区")
    private String receiverDistrictId;

    /** 收件人地址 */
    @Excel(name = "收件人地址")
    private String receiverAddress;

    /** 总重量（kg） */
    @Excel(name = "总重量", readConverterExp = "k=g")
    private BigDecimal totalWeight;

    /** 总体积（cm3） */
    @Excel(name = "总体积", readConverterExp = "c=m3")
    private BigDecimal totalVolume;

    /** 物流费 */
    @Excel(name = "物流费")
    private BigDecimal totalAmount;

    /** 状态 */
    @Excel(name = "状态")
    private Long status;

    /** 备注 */
    @Excel(name = "备注")
    private String description;

    /** 发货人 */
    @Excel(name = "发货人")
    private String deliveryBy;

    /** 发货时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "发货时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date deliveryTime;

    /** 创建人ID */
    @Excel(name = "创建人ID")
    private String createById;

    /** 修改人ID */
    @Excel(name = "修改人ID")
    private String updateById;

    /** 物流单明细信息 */
    private List<TblLogisticsSheetDetail> tblLogisticsSheetDetailList;

    //物流公司
    private BaseDataLogisticsCompany baseDataLogisticsCompany;

    public BaseDataLogisticsCompany getBaseDataLogisticsCompany() {
        return baseDataLogisticsCompany;
    }

    public void setBaseDataLogisticsCompany(BaseDataLogisticsCompany baseDataLogisticsCompany) {
        this.baseDataLogisticsCompany = baseDataLogisticsCompany;
    }

    public void setId(String id)
    {
        this.id = id;
    }

    public String getId() 
    {
        return id;
    }
    public void setCode(String code) 
    {
        this.code = code;
    }

    public String getCode() 
    {
        return code;
    }
    public void setLogisticsNo(String logisticsNo) 
    {
        this.logisticsNo = logisticsNo;
    }

    public String getLogisticsNo() 
    {
        return logisticsNo;
    }
    public void setLogisticsCompanyId(String logisticsCompanyId) 
    {
        this.logisticsCompanyId = logisticsCompanyId;
    }

    public String getLogisticsCompanyId() 
    {
        return logisticsCompanyId;
    }
    public void setSenderName(String senderName) 
    {
        this.senderName = senderName;
    }

    public String getSenderName() 
    {
        return senderName;
    }
    public void setSenderTelephone(String senderTelephone) 
    {
        this.senderTelephone = senderTelephone;
    }

    public String getSenderTelephone() 
    {
        return senderTelephone;
    }
    public void setSenderProvinceId(String senderProvinceId) 
    {
        this.senderProvinceId = senderProvinceId;
    }

    public String getSenderProvinceId() 
    {
        return senderProvinceId;
    }
    public void setSenderCityId(String senderCityId) 
    {
        this.senderCityId = senderCityId;
    }

    public String getSenderCityId() 
    {
        return senderCityId;
    }
    public void setSenderDistrictId(String senderDistrictId) 
    {
        this.senderDistrictId = senderDistrictId;
    }

    public String getSenderDistrictId() 
    {
        return senderDistrictId;
    }
    public void setSenderAddress(String senderAddress) 
    {
        this.senderAddress = senderAddress;
    }

    public String getSenderAddress() 
    {
        return senderAddress;
    }
    public void setReceiverName(String receiverName) 
    {
        this.receiverName = receiverName;
    }

    public String getReceiverName() 
    {
        return receiverName;
    }
    public void setReceiverTelephone(String receiverTelephone) 
    {
        this.receiverTelephone = receiverTelephone;
    }

    public String getReceiverTelephone() 
    {
        return receiverTelephone;
    }
    public void setReceiverProvinceId(String receiverProvinceId) 
    {
        this.receiverProvinceId = receiverProvinceId;
    }

    public String getReceiverProvinceId() 
    {
        return receiverProvinceId;
    }
    public void setReceiverCityId(String receiverCityId) 
    {
        this.receiverCityId = receiverCityId;
    }

    public String getReceiverCityId() 
    {
        return receiverCityId;
    }
    public void setReceiverDistrictId(String receiverDistrictId) 
    {
        this.receiverDistrictId = receiverDistrictId;
    }

    public String getReceiverDistrictId() 
    {
        return receiverDistrictId;
    }
    public void setReceiverAddress(String receiverAddress) 
    {
        this.receiverAddress = receiverAddress;
    }

    public String getReceiverAddress() 
    {
        return receiverAddress;
    }
    public void setTotalWeight(BigDecimal totalWeight) 
    {
        this.totalWeight = totalWeight;
    }

    public BigDecimal getTotalWeight() 
    {
        return totalWeight;
    }
    public void setTotalVolume(BigDecimal totalVolume) 
    {
        this.totalVolume = totalVolume;
    }

    public BigDecimal getTotalVolume() 
    {
        return totalVolume;
    }
    public void setTotalAmount(BigDecimal totalAmount) 
    {
        this.totalAmount = totalAmount;
    }

    public BigDecimal getTotalAmount() 
    {
        return totalAmount;
    }
    public void setStatus(Long status) 
    {
        this.status = status;
    }

    public Long getStatus() 
    {
        return status;
    }
    public void setDescription(String description) 
    {
        this.description = description;
    }

    public String getDescription() 
    {
        return description;
    }
    public void setDeliveryBy(String deliveryBy) 
    {
        this.deliveryBy = deliveryBy;
    }

    public String getDeliveryBy() 
    {
        return deliveryBy;
    }
    public void setDeliveryTime(Date deliveryTime) 
    {
        this.deliveryTime = deliveryTime;
    }

    public Date getDeliveryTime() 
    {
        return deliveryTime;
    }
    public void setCreateById(String createById) 
    {
        this.createById = createById;
    }

    public String getCreateById() 
    {
        return createById;
    }
    public void setUpdateById(String updateById) 
    {
        this.updateById = updateById;
    }

    public String getUpdateById() 
    {
        return updateById;
    }

    public List<TblLogisticsSheetDetail> getTblLogisticsSheetDetailList()
    {
        return tblLogisticsSheetDetailList;
    }

    public void setTblLogisticsSheetDetailList(List<TblLogisticsSheetDetail> tblLogisticsSheetDetailList)
    {
        this.tblLogisticsSheetDetailList = tblLogisticsSheetDetailList;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("code", getCode())
            .append("logisticsNo", getLogisticsNo())
            .append("logisticsCompanyId", getLogisticsCompanyId())
            .append("senderName", getSenderName())
            .append("senderTelephone", getSenderTelephone())
            .append("senderProvinceId", getSenderProvinceId())
            .append("senderCityId", getSenderCityId())
            .append("senderDistrictId", getSenderDistrictId())
            .append("senderAddress", getSenderAddress())
            .append("receiverName", getReceiverName())
            .append("receiverTelephone", getReceiverTelephone())
            .append("receiverProvinceId", getReceiverProvinceId())
            .append("receiverCityId", getReceiverCityId())
            .append("receiverDistrictId", getReceiverDistrictId())
            .append("receiverAddress", getReceiverAddress())
            .append("totalWeight", getTotalWeight())
            .append("totalVolume", getTotalVolume())
            .append("totalAmount", getTotalAmount())
            .append("status", getStatus())
            .append("description", getDescription())
            .append("deliveryBy", getDeliveryBy())
            .append("deliveryTime", getDeliveryTime())
            .append("createBy", getCreateBy())
            .append("createById", getCreateById())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateById", getUpdateById())
            .append("updateTime", getUpdateTime())
            .append("tblLogisticsSheetDetailList", getTblLogisticsSheetDetailList())
            .toString();
    }
}
